package com.plian.system.entity.pm.listedcompany;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.plian.system.mybatis.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;

/**
 * @Description: TODO
 * @Author: Take-off
 * @Date: 2023/2/27 10:52 AM
 * @Param
 * @return
 * @Version: 1.0
 **/
@Data
@TableName("pm_expenditure_items_detail")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ExpenditureItemDetail 对象", description = "国有资本经营预算支出项目申报-详情")
public class ExpenditureItemDetail extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主表Id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long baseId;

    @ApiModelProperty(value = "序号")
    private String indexNum;

    @ApiModelProperty(value = "所属企业")
    private String orgId;

    @ApiModelProperty(value = "支出项目名称")
    private String expenditureName;

    @ApiModelProperty(value = "支出类型:1-补贴；2-资本金注入")
    private Integer expenditureType;

    @ApiModelProperty(value = "支出类型")
    @TableField(exist = false)
    private String expenditureTypeString;

    @ApiModelProperty(value = "小计")
    private BigDecimal subtotal;

    @ApiModelProperty(value = "资本性支出")
    private BigDecimal capitalExpenditure;

    @ApiModelProperty(value = "费用性支出")
    private BigDecimal expense;

    @ApiModelProperty(value = "其他支出")
    private BigDecimal otherExpense;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @TableField(exist = false)
    @ApiModelProperty(value = "附件")
    private List<HashMap> docList;

    @TableField(exist = false)
    @ApiModelProperty(value = "附件")
    private String attachIds;

    @ApiModelProperty(value = "拟安排支出")
    private BigDecimal proposedExpenditure;

    @ApiModelProperty(value = "国资拟安排-支出类型:1-补贴；2-资本金注入")
    private Integer gzwExpenditureType;

    @ApiModelProperty(value = "国资拟安排-支出类型")
    @TableField(exist = false)
    private String gzwExpenditureTypeString;

    @ApiModelProperty(value = "备注-国资版本")
    private String gzwRemarks;

    @ApiModelProperty(value = "是否小结:0-否；1-是")
    private Integer isSummary;

    @ApiModelProperty(value = "是否自定义:0-否；1-是")
    private Integer isCustomize;
}
